Telegram Group »
Singapore »
Библиотека пхпшника | PHP Laravel Symfony CodeIgniter » Telegram Webview
PHP Datatypes: Строгий и безопасный способ работы с примитивными типами данных
Эта библиотека представляет гибкий, но строгий способ работы с примитивными типами данных, такими как целые числа, плавающие и строки, в PHP. Она делает акцент на безопасности типов и точности, поддерживая операции для подписанных и беззнаковых целых чисел (Int8, UInt8 и т.д.) и различных форматов с плавающей точкой (Float32, Float64 и т.д.).
Для чего это нужно:
🟢Безопасность типов: Явно определяя типы данных, например UInt8, вы устраняете риск проникновения недопустимых значений в ваше приложение. Например, использование целых чисел без знака гарантирует, что значение останется в допустимых диапазонах, обеспечивая защиту от неожиданного ввода данных.
🟢Точность: Работа с точными значениями, особенно с числами с плавающей точкой, может быть сложной в PHP из-за того, как он управляет плавающими числами нативно.
🟢Защита диапазонов: Указывая точные диапазоны, вы можете предотвратить такие проблемы, как переполнение или недополнение, которые часто остаются незамеченными в языках с динамической типизацией.
🟢Удобство чтения и обслуживания: Явные типы данных улучшают читаемость кода. Когда разработчик читает ваш код, он сразу же понимает, какой тип значения ожидается и какие ограничения на него накладываются. Это повышает удобство сопровождения в долгосрочной перспективе.
🔗 Github
Библиотека пхпшника #инструменты
Эта библиотека представляет гибкий, но строгий способ работы с примитивными типами данных, такими как целые числа, плавающие и строки, в PHP. Она делает акцент на безопасности типов и точности, поддерживая операции для подписанных и беззнаковых целых чисел (Int8, UInt8 и т.д.) и различных форматов с плавающей точкой (Float32, Float64 и т.д.).
Для чего это нужно:
🟢Безопасность типов: Явно определяя типы данных, например UInt8, вы устраняете риск проникновения недопустимых значений в ваше приложение. Например, использование целых чисел без знака гарантирует, что значение останется в допустимых диапазонах, обеспечивая защиту от неожиданного ввода данных.
🟢Точность: Работа с точными значениями, особенно с числами с плавающей точкой, может быть сложной в PHP из-за того, как он управляет плавающими числами нативно.
🟢Защита диапазонов: Указывая точные диапазоны, вы можете предотвратить такие проблемы, как переполнение или недополнение, которые часто остаются незамеченными в языках с динамической типизацией.
🟢Удобство чтения и обслуживания: Явные типы данных улучшают читаемость кода. Когда разработчик читает ваш код, он сразу же понимает, какой тип значения ожидается и какие ограничения на него накладываются. Это повышает удобство сопровождения в долгосрочной перспективе.
🔗 Github
Библиотека пхпшника #инструменты
Что будет выведено в результате работы скрипта?
Anonymous Quiz
67%
int(8) int(5)
6%
int(8) int(5) int(7) int(4)
24%
int(8) int(7) int(5) int(4)
3%
int(7) int(4)
Forwarded from Proglib.academy | IT-курсы
🏗 7 архитектурных паттернов, которые должен знать каждый программист
Если вы всерьёз строите карьеру в разработке, то без архитектурных паттернов никуда. Они помогают проектировать системы, которые не развалятся при первом же проде — масштабируемые, отказоустойчивые и вменяемые в поддержке.
➡️ В статье вас ждёт
— Circuit Breaker — как не сжечь систему повторными ошибками
— Event Sourcing — зачем сохранять историю изменений вместо текущего состояния
— SideCar — как отделить логику от инфраструктуры
— CQRS — почему чтение и запись лучше разводить по разным моделям
— Rate Limiting — как защититься от перегрузки
— Strangler Fig — пошаговая миграция без боли
— Health Endpoint Monitoring — как делать доступный мониторинг состояния системы
Это не базовые темы, но если вы хотите прокачаться и разбираться в архитектуре — самое время углубиться.
🔵 Для полного понимания Архитектуры, забирайте наш курс → «Архитектуры и шаблоны проектирования»
📎 Статья
Proglib Academy #буст
Если вы всерьёз строите карьеру в разработке, то без архитектурных паттернов никуда. Они помогают проектировать системы, которые не развалятся при первом же проде — масштабируемые, отказоустойчивые и вменяемые в поддержке.
— Circuit Breaker — как не сжечь систему повторными ошибками
— Event Sourcing — зачем сохранять историю изменений вместо текущего состояния
— SideCar — как отделить логику от инфраструктуры
— CQRS — почему чтение и запись лучше разводить по разным моделям
— Rate Limiting — как защититься от перегрузки
— Strangler Fig — пошаговая миграция без боли
— Health Endpoint Monitoring — как делать доступный мониторинг состояния системы
Это не базовые темы, но если вы хотите прокачаться и разбираться в архитектуре — самое время углубиться.
Proglib Academy #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
⌨️ Топ-вакансий по PHP за неделю
Senior PHP Developer (Bitrix) — от 3 500 до 4 500 €, Офис (Кипр)
TechLead PHP — 400 000 ₽, удалёнка (Москва)
Senior PHP Developer — от 250 000 до 400 000 ₽, удалёнка (Москва)
➡️ Еще больше топовых вакансий — в нашем канале PHP Jobs
Senior PHP Developer (Bitrix) — от 3 500 до 4 500 €, Офис (Кипр)
TechLead PHP — 400 000 ₽, удалёнка (Москва)
Senior PHP Developer — от 250 000 до 400 000 ₽, удалёнка (Москва)
➡️ Еще больше топовых вакансий — в нашем канале PHP Jobs
📢 Работа с IP
Иногда вам может понадобиться работать с IP-адресами. Laravel использует компонент
Библиотека пхпшника #буст
Иногда вам может понадобиться работать с IP-адресами. Laravel использует компонент
HttpFoundation
из Symfony, который поставляется с полезными помощниками для работы с IP-адресами 🚀Библиотека пхпшника #буст
🔧 Как без боли обновить PHP-проект на Symfony
Обновление PHP-проекта часто воспринимается как рискованная операция: что-то ломается, срочные фиксы летят в прод, команда в стрессе. Однако при правильном подходе процесс становится предсказуемым и управляемым.
🧰 1. Подготовка инструментов
Перед обновлением важно собрать «ящик инструментов»: автоматические тесты, статический анализ, линтеры. Например, инструмент Bruno отлично подходит для API-тестирования — лёгкий, удобный для работы в команде и хорошо интегрируется с Git.
📋 Что нужно сделать:
Выполнить
Определить критичные эндпоинты и написать для них тест-сценарии.
Интегрировать тесты в CI для автоматического контроля стабильности.
⬆️ 2. Обновление зависимостей и окружения
Обновить
Проверить список устаревших пакетов через
Выполнять обновление поэтапно — по одному или нескольким пакетам за раз.
Запустить PHPStan для статического анализа и PHP CS Fixer для форматирования кода.
Проверить и устранить устаревшие конструкции, отображаемые в Symfony Profiler или тестах.
🔄 3. Рефакторинг с использованием Rector
Rector позволяет автоматически модернизировать код: обновить синтаксис под новую версию PHP, улучшить читаемость, удалить мёртвый код. Настраивается через конфигурационные файлы с наборами правил (например, PHP 8.3, codeQuality, deadCode). Рефакторинг проводится поэтапно с обязательным прогоном тестов после каждого шага.
🛠️ 4. Обновление CI/CD
Актуализировать образы и зависимости в CI-пайплайне.
Убедиться, что все стадии (тесты, линтеры, анализ) выполняются успешно.
Задеплоить на стейджинг и проверить стабильность работы.
🧪 Пример GitHub Actions с Bruno:
🖼️ 5. Тестирование фронтенда
Даже если проект в основном бэкендовый, визуальные баги и ошибки пользовательского сценария могут остаться незамеченными. Тесты с помощью Cypress или Puppeteer позволяют отследить визуальные и поведенческие ошибки в интерфейсе.
🔗 Medium
Обновление PHP-проекта часто воспринимается как рискованная операция: что-то ломается, срочные фиксы летят в прод, команда в стрессе. Однако при правильном подходе процесс становится предсказуемым и управляемым.
🧰 1. Подготовка инструментов
Перед обновлением важно собрать «ящик инструментов»: автоматические тесты, статический анализ, линтеры. Например, инструмент Bruno отлично подходит для API-тестирования — лёгкий, удобный для работы в команде и хорошо интегрируется с Git.
📋 Что нужно сделать:
Выполнить
debug:router
для получения списка маршрутов.Определить критичные эндпоинты и написать для них тест-сценарии.
Интегрировать тесты в CI для автоматического контроля стабильности.
⬆️ 2. Обновление зависимостей и окружения
Обновить
composer.json
и конфигурации окружения (например, Docker) под новую версию PHP, например 8.3.Проверить список устаревших пакетов через
composer outdated
.Выполнять обновление поэтапно — по одному или нескольким пакетам за раз.
Запустить PHPStan для статического анализа и PHP CS Fixer для форматирования кода.
Проверить и устранить устаревшие конструкции, отображаемые в Symfony Profiler или тестах.
🔄 3. Рефакторинг с использованием Rector
Rector позволяет автоматически модернизировать код: обновить синтаксис под новую версию PHP, улучшить читаемость, удалить мёртвый код. Настраивается через конфигурационные файлы с наборами правил (например, PHP 8.3, codeQuality, deadCode). Рефакторинг проводится поэтапно с обязательным прогоном тестов после каждого шага.
🛠️ 4. Обновление CI/CD
Актуализировать образы и зависимости в CI-пайплайне.
Убедиться, что все стадии (тесты, линтеры, анализ) выполняются успешно.
Задеплоить на стейджинг и проверить стабильность работы.
🧪 Пример GitHub Actions с Bruno:
- name: Run Bruno API tests
run: |
npm install -g @usebruno/cli
php -S localhost:8000 -t public &
sleep 2
cd bruno && bru run --env dev
🖼️ 5. Тестирование фронтенда
Даже если проект в основном бэкендовый, визуальные баги и ошибки пользовательского сценария могут остаться незамеченными. Тесты с помощью Cypress или Puppeteer позволяют отследить визуальные и поведенческие ошибки в интерфейсе.
🔗 Medium
Создание пользовательских классов в Laravel без пользовательских команд
🔧 Проблема
Laravel предоставляет команды Artisan для генерации стандартных компонентов (модели, контроллеры и т.д.), но не поддерживает создание пользовательских классов. Обычно разработчики создают отдельные команды, например,
💡 Решение: пакет
Пакет
🔸 Определять пользовательские типы классов в одном конфигурационном файле.
🔸 Указывать путь для сохранения и шаблон (stub) для каждого типа.
🔸 Генерировать классы с помощью команды
👉 Читать статью
Библиотека пхпшника #буст
🔧 Проблема
Laravel предоставляет команды Artisan для генерации стандартных компонентов (модели, контроллеры и т.д.), но не поддерживает создание пользовательских классов. Обычно разработчики создают отдельные команды, например,
make:service
или make:repository
, что требует времени на настройку и поддержку.💡 Решение: пакет
laravel-custom-make
Пакет
usmanzahid/laravel-custom-make
позволяет:🔸 Определять пользовательские типы классов в одном конфигурационном файле.
🔸 Указывать путь для сохранения и шаблон (stub) для каждого типа.
🔸 Генерировать классы с помощью команды
php artisan make:custom
👉 Читать статью
Библиотека пхпшника #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
🚨 Смешные новости про IT теперь в одном канале
Мы запустили @hahacker_news — наш новый юмористический IT-канал.
Туда будем постить лучшие шутки до 19го мая, которые вы присылали на конкурс.
👉 @hahacker_news — голосование уже идёт, переходите, читайте, угарайте и оставляйте реакции
Мы запустили @hahacker_news — наш новый юмористический IT-канал.
Туда будем постить лучшие шутки до 19го мая, которые вы присылали на конкурс.
👉 @hahacker_news — голосование уже идёт, переходите, читайте, угарайте и оставляйте реакции
🐾 Проклятие или благословение
Вопрос древний, как интернет: помогает ли кошка работать? Или это пушистая диверсия в лапах?
За что кошку можно любить на рабочем месте:
➖ Погладил кота — забыл о дедлайнах. Правда, вместе с дедлайнами можно забыть и о задачах. Но нервы целы.
➖ Когда твой ноутбук превращается в трон для кота, начинаешь задумываться о великих целях... например, купить второй ноутбук.
➖ Кошка никогда не делает ничего лишнего. Хотите продуктивности? Учитесь у мастеров минимализма.
💬 А есть ли минусы у кошек? Делитесь своими мыслями в комментариях👇 Заодно можете покидать своих пушистых помощников 🐈
Библиотека пхпшника #буст
Вопрос древний, как интернет: помогает ли кошка работать? Или это пушистая диверсия в лапах?
За что кошку можно любить на рабочем месте:
Библиотека пхпшника #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
💡 Хочешь редактировать код быстрее и чувствовать себя как джедай IDE? Лови подборку горячих клавиш, которые действительно ускоряют работу и делают процесс редактирования в разы приятнее:
🔥 Редактирование
🔹 Alt + ↑ / ↓ — переместить строку вверх или вниз.
🔹 Shift + Alt + ↑ / ↓ — скопировать строку вверх или вниз.
🔹 Ctrl + / — закомментировать или раскомментировать строку.
💬 А какие хоткеи у вас самые любимые? Может, есть свои "скрытые фишки" работы в VS Code? Делитесь в комментариях👇
Библиотека пхпшника #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
🚀 Работаем с NATS в PHP: просто, быстро и неожиданно
Что такое NATS?
NATS — это высокопроизводительный брокер сообщений, написанный на Go. Он поддерживает модели PUB/SUB и очереди через JetStream. Работает по простому текстовому протоколу, с которым можно взаимодействовать даже через telnet.
PHP и NATS: возможно ли?
Да! Существует библиотека
🔸 Как установить и настроить библиотеку.
🔸 Как создать поток с политикой WORK_QUEUE.
🔸 Как публиковать и обрабатывать сообщения.
Почему это важно?
Интеграция PHP с современными брокерами сообщений открывает новые возможности для масштабируемых и распределённых систем. Теперь PHP-разработчики могут использовать преимущества асинхронной обработки данных без перехода на другие языки.
📖 Читайте статью полностью на Хабре
Что такое NATS?
NATS — это высокопроизводительный брокер сообщений, написанный на Go. Он поддерживает модели PUB/SUB и очереди через JetStream. Работает по простому текстовому протоколу, с которым можно взаимодействовать даже через telnet.
PHP и NATS: возможно ли?
Да! Существует библиотека
basis-company/nats
, которая позволяет PHP-приложениям подключаться к NATS, публиковать и получать сообщения. В статье подробно описано:🔸 Как установить и настроить библиотеку.
🔸 Как создать поток с политикой WORK_QUEUE.
🔸 Как публиковать и обрабатывать сообщения.
Почему это важно?
Интеграция PHP с современными брокерами сообщений открывает новые возможности для масштабируемых и распределённых систем. Теперь PHP-разработчики могут использовать преимущества асинхронной обработки данных без перехода на другие языки.
📖 Читайте статью полностью на Хабре
Please open Telegram to view this post
VIEW IN TELEGRAM